class Solution {
public:
    /*
     int  NumberOf1(int n) {
         int cnt = 0;
         while(n){
             n &= (n-1);
             ++cnt;
         }
         return cnt;
     }
    */
    
    /*
    // 逐个判断最高位
    int NumberOf1(int n){
        int cnt = 0;
        while(n){
            if(n & 0x80000000) 
                ++cnt;
            n <<= 1;
        }
        return cnt;
    }
    */
    
    int NumberOf1(int n){
        int cnt = 0;
        for(int i = 0; i < 32; ++i){
            if((n & (1<<i)) != 0)   // & 运算符优先级低！！加括号
                ++cnt;
        }
        return cnt;
    }
};